]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
js/ui: Use Clutter.OffscreenRedirect.ON_IDLE
authorDaniel van Vugt <daniel.van.vugt@canonical.com>
Wed, 19 Feb 2020 11:09:07 +0000 (19:09 +0800)
committerFlorian Müllner <florian.muellner@gmail.com>
Fri, 21 Feb 2020 12:19:15 +0000 (12:19 +0000)
To bypass offscreening in cases where continuous animation is happening.
Offscreening is slower in such cases so this reduces the render time of
animations within offscreenable actors.

On an i7-7700 this reduces the render time of boxpointers for example by
25-30%.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1025

js/ui/boxpointer.js
js/ui/dash.js
js/ui/overview.js
js/ui/panel.js
js/ui/windowManager.js

index 03cb4a567f66bf28983a26bc080a522fd9ffb8d6..940f6aa16bcf258458fb2775f332b2d9dee60ad3 100644 (file)
@@ -33,7 +33,7 @@ var BoxPointer = GObject.registerClass({
     _init(arrowSide, binProperties) {
         super._init();
 
-        this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
+        this.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE);
 
         this._arrowSide = arrowSide;
         this._userArrowSide = arrowSide;
index 6eb71e73bd7394ab9f06c3484f036d6849c1dcee..928104637874677403a3cf1448792d5b07f60ece 100644 (file)
@@ -353,7 +353,7 @@ var Dash = GObject.registerClass({
                                        clip_to_allocation: true });
         this._box._delegate = this;
         this._container.add_actor(this._box);
-        this._container.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
+        this._container.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE);
 
         this._showAppsIcon = new ShowAppsIcon();
         this._showAppsIcon.show(false);
index 62a3c0917a9247a854da1d4c4879aeab339d68a9..45d12340bc824ff51d1558b2098e843c76e7d3cd 100644 (file)
@@ -108,7 +108,7 @@ class OverviewActor extends St.BoxLayout {
             track_hover: true,
             can_focus: true,
         });
-        this._searchEntry.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
+        this._searchEntry.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE);
         let searchEntryBin = new St.Bin({
             child: this._searchEntry,
             x_align: Clutter.ActorAlign.CENTER,
index eb3a19599666fe33eb0b0d1e9d0d99af3843d187..fd499f8633e19e8c14939e17e864efe055e6f94f 100644 (file)
@@ -788,7 +788,7 @@ class Panel extends St.Widget {
         super._init({ name: 'panel',
                       reactive: true });
 
-        this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
+        this.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE);
 
         this._sessionStyle = null;
 
index 075fbb15bb44ff4e9da0dc44ce87687fdb805461..b1b0806163ba17d985cd3dc59547c325f5a7feae 100644 (file)
@@ -1256,7 +1256,7 @@ var WindowManager = class {
         // while actor updates are frozen.
         let actorContent = Shell.util_get_content_for_window_actor(actor, oldFrameRect);
         let actorClone = new St.Widget({ content: actorContent });
-        actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
+        actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE);
         actorClone.set_position(oldFrameRect.x, oldFrameRect.y);
         actorClone.set_size(oldFrameRect.width, oldFrameRect.height);
         Main.uiGroup.add_actor(actorClone);